Ext.regModel('Grouping', {
	fields: ['section', 'title', 'description', 'property', 'values']
});

Ext.regModel('Picture', {
	fields: ['location']
});

Ext.regModel('Skill', {
	idPrperty: 'id',
	
	fields: [{
		name: 'id',
		type: 'string'
	}, {
		name: 'names'
	}, {
		name: 'types'
	}, {
		name: 'since'
	}, {
		name: 'proficiency',
		type: 'int'
	}]
});

Ext.regModel('Experience', {
	idPrperty: 'id',
	
	fields: [{
		name: 'id',
		type: 'string'
	}, {
		name: 'title',
		type: 'string'
	}, {
		name: 'employer'
	}, {
		name: 'beginning'
	}, {
		name: 'ending'
	}, {
		name: 'responsibilities'
	}]
});

Ext.regModel('Education', {
	idPrperty: 'id',
	
	fields: [{
		name: 'id',
		type: 'string'
	}, {
		name: 'institution',
	}, {
		name: 'accomplishments'
	}]
});

Ext.regModel('Reference', {
	idPrperty: 'id',
	
	fields: [{
		name: 'id',
		type: 'string'
	}, {
		name: 'surname',
	}, {
		name: 'givenName'
	}, {
		name: 'description'
	}, {
		name: 'mailingAddress'
	}, {
		name: 'emailAddress'
	}, {
		name: 'telephoneNumber'
	}]
});

Ext.regModel('Candidate', {
	idProperty: 'id',
	
	fields: [{
		name: 'id'
	}, {
		name: 'surname'
	}, {
		name: 'givenName'
	}, {
		name: 'postalAddress'
	}, {
		name: 'emailAddress'
	}, {
		name: 'telephoneNumber'
	}, {
		name: 'objective'
	}],
	associations: [{
		type: 'hasMany',
		model: 'Picture',
		name: 'pictures'
	}, {
		type: 'hasMany',
		model: 'Grouping',
		name: 'groupings'
	}, {
		type: 'hasMany',
		model: 'Skill',
		name: 'skills'
	}, {
		type: 'hasMany',
		model: 'Experience',
		name: 'experience'
	}, {
		type: 'hasMany',
		model: 'Education',
		name: 'education'
	}, {
		type: 'hasMany',
		model: 'Reference',
		name: 'references'
	}]
});
